class Solution
{
public:
    int deleteString(string s)
    {
        int n = s.size();
        vector<int> dp(n, 1);
        string_view sv(s);
        for (int i = n - 2; i >= 0; --i)
        {
            for (int j = 1; j <= (n - i) / 2; ++j)
            {
                if (sv.substr(i, j) == sv.substr(i + j, j))
                {
                    dp[i] = max(dp[i], 1 + dp[i + j]);
                }
            }
        }
        return dp[0];
    }
};